<?php
  require_once("../conf/conf.inc.php");
  require_once("../lib/util.lib.php");
  require_once("class/Evenement.class.php");
  require_once("class/Champ.class.php");
  require_once("class/Membre.class.php");
validerLogin();

  $request = array_merge($_POST,$_GET);
  $request["id"] = (isset($request["id"])?
              $request["id"]:
                (isset($_GET["id"])?$_GET["id"] : "new")
             );
  $evenement = new Evenement($request["id"]);
  if (isset($request["edit_evenement"])){
    $message = validerEdit($request);
    if($message == ''){
      $evenement->setEvenementInfo(
                      $request["titre"],
                      $request["debut"],
                      $request["fin"],
                      $request["debut_inscription"],
                      $request["fin_inscription"],
                      $request["nom_referent"],
                      $request["archive"]);
      if(isset($request["ajouter_gestionnaire"])){
        $evenement->ajouterGestionnaire($request["ajouter_gestionnaire"]);
      }
    }
    else
      echo ($message);
  }
  elseif (isset($request["action"])){
    
    switch ($request["action"]){
      case "supprimer_gestionnaire":
        
        $evenement->supprimerGestionnaire($request["id_membre"]);
        break;
    }
  }

  chargerEvenement($evenement,$request);

  function chargerEvenement($evenement,&$request){
    if($evenement->id != "new"){
      $request = $evenement->getEvenementInfo();
    }
    else{
      $request["titre"] = "";
      $request["debut"] = time();
      $request["fin"] = time();
      $request["debut_inscription"] = time();
      $request["fin_inscription"] = time();
      $request["nom_referent"] = "";
      $request["archive"] = 0 ;
    }
  }
  
  /**
   * Valide si le post est valide en fonction du formulaire. 
   * Les dates dans le post sont converties en timestamp
   *
   * @param Array $post
   * @return string
   */
  function validerEdit(&$post){
    $dates = explode("~",$post["rangeEvenement"]);
    $post["debut"] = $dates[0];
    $post["fin"] = $dates[1];
    
    $dates = explode("~",$post["rangeEvenementInscription"]);
    $post["debut_inscription"] = $dates[0];
    $post["fin_inscription"] = $dates[1];
    
    if (!isset($post["archive"]))
      $post["archive"] = 0;
      
    if (!isset($post["titre"]) || $post["titre"] == "")
      return "Le titre de l'&eacute;v&eacute;nement est obligatoire";
  
    if (!(isset($post["debut"])) || !isDateValide($post["debut"]))
      return "La date de d&eacute;but de l'&eacute;v&eacute;nement n'est pas valide (format jj/mm/aaaa est requis)";
    else
      $post["debut"] = convertToTimestamp($post["debut"]);
    
    if (!(isset($post["fin"])) || !isDateValide($post["fin"]))
      return "La date de fin de l'&eacute;v&eacute;nement n'est pas valide (format jj/mm/aaaa est requis)";
    elseif($post["debut"] > ($post["fin"] = convertToTimestamp($post["fin"])))
       return "La date de fin doit �tre ult&eacute;rieure � la date de d&eacute;but."; 
    
    if (!(isset($post["debut_inscription"])) || !isDateValide($post["debut_inscription"]))
      return "La date de d&eacute;but des inscriptions � l'&eacute;v&eacute;nement n'est pas valide (format jj/mm/aaaa est requis)";
    else
      $post["debut_inscription"] = convertToTimestamp($post["debut_inscription"]);
    
    if (!(isset($post["fin_inscription"])) || !isDateValide($post["fin_inscription"]))
      return "La date de fin des inscriptions � l'&eacute;v&eacute;nement n'est pas valide (format jj/mm/aaaa est requis)";
    elseif($post["debut_inscription"] > $post["fin_inscription"] = convertToTimestamp($post["fin_inscription"]))
       return "La date de fin des inscriptions doit �tre ult&eacute;rieure � la date de d&eacute;but des inscriptions.";
    
    if (!isset($post["nom_referent"]))
      return 'Le nom r&eacute;f&eacute;rent doit �tre sp&eacute;cifi&eacute;';
      
    return '';
  }
    
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
  <head>
    <link type="text/css" rel="stylesheet" href="../style/ui.datepicker.css" />
    <link type="text/css" rel="stylesheet" href="../style/admin.css" />
    <script type="text/javascript" src="../lib/jquery-1.2.3.min.js"></script>
    <script type="text/javascript" src="../lib/ui.datepicker.js"></script>
    <script type="text/javascript" src="../lib/ui.datepicker-fr.js"></script>
    <script type="text/javascript">
      function setEvenementDate(cal,field){
        dates = field.val().split("~");
        dateEvenementD = dates[0].split("/");
        dateEvenementF = dates[1].split("/");
        cal.datepicker("setDate",new Date(dateEvenementD[2],dateEvenementD[1]-1 ,dateEvenementD[0]) ,new Date(dateEvenementF[2],dateEvenementF[1] -1 ,dateEvenementF[0]  ));
      }
      
      function updaterangeEvenement(dateStr) {
       setEvenementDate($('#calEvenementInscription'),$('#rangeEvenementInscription'));
       var dates = $('#calEvenement').datepicker('getDate'); 
       var dateFormat = $.datepicker.regional[''].dateFormat; 
       $('#rangeEvenement').val(dateStr ? dateStr : 
               $.datepicker.formatDate(dateFormat, dates[0]) + '~' + 
               $.datepicker.formatDate(dateFormat, dates[1])); 
          
      } 
      function updaterangeEvenementInscription(dateStr) {
        setEvenementDate($('#calEvenement'),$('#rangeEvenement'));
        var dates = $('#calEvenementInscription').datepicker('getDate'); 
        var dateFormat = $.datepicker.regional[''].dateFormat; 
        $('#rangeEvenementInscription').val(dateStr ? dateStr : 
            $.datepicker.formatDate(dateFormat, dates[0]) + '~' + 
            $.datepicker.formatDate(dateFormat, dates[1])); 
      } 
      jQuery(function($){
      
        $('#calEvenement').datepicker({
                      rangeSelect: true, 
                      rangeSeparator: '~', 
                      numberOfMonths: 2, 
                      onSelect: updaterangeEvenement});
        $('#calEvenement').find('div:first').width(370); // Unfortunately not automatic
        
        $('#calEvenementInscription').datepicker({
                      rangeSelect: true, 
                      rangeSeparator: '~', 
                      numberOfMonths: 2, 
                      onSelect: updaterangeEvenementInscription}); 
        $('#calEvenementInscription').find('div:first').width(370); // Unfortunately not automatic
         
        setEvenementDate($('#calEvenement'),$('#rangeEvenement'));
        setEvenementDate($('#calEvenementInscription'),$('#rangeEvenementInscription'));
        
      });
    </script>
  </head>
  <body>
    <form method="post" action="edit_evenement.php?id=<?php echo $request["id"] ?>">
    <table align="center">
      <tr><td>
      <table>
        <tr><td>
          Titre&nbsp;:
        </td><td>
          <input type="text"  name="titre" size='50' value="<?php echo $request["titre"]; ?>" />
        </td></tr>
        <tr valign="top"><td>
          Dur&eacute;e de l'&eacute;v&eacute;nement&nbsp;:
        </td><td>
          <div id="calEvenement"></div>
          <input type="hidden" id="rangeEvenement" name="rangeEvenement" value="<?php echo convertToDate($request["debut"]) . "~".  convertToDate($request["fin"]); ?>" />
        </td></tr>
        <tr valign="top"><td>
          Dur&eacute;e de l'inscription&nbsp;:
        </td><td>
          <div id="calEvenementInscription"></div>
          <input type="hidden" id="rangeEvenementInscription" name="rangeEvenementInscription" value="<?php echo convertToDate($request["debut_inscription"]) . "~".  convertToDate($request["fin_inscription"]); ?>" />
        </td></tr>
        <tr><td title="Nom utilis&eacute; pour afficher le formulaire dans le template de l'&eacute;v&eacute;nement">
          Nom r&eacute;f&eacute;rent&nbsp;:
        </td><td>
          <input type="text" name="nom_referent" value="<?php echo $request["nom_referent"]; ?>" />
          <?php 
          if($request["nom_referent"] != "") 
            echo "<a href='../index.php?evenement={$request["nom_referent"]}' target='formulaire''>Consulter le formulaire</a>"; 
          ?>
        </td></tr>
      </table>
      </td></tr>
      <?php
      if($request["id"] != "new"){ ?>
      <tr><td>
        <br />
        <div class="titre">Champs du formulaire</div>
        <table width="100%">
        <?php
          $champs = Champ::getListeChamp($request["id"]);
          foreach($champs as $champ){
            echo "
            <tr><td>
              {$champ["etiquette"]}
            </td><td>
              ".getEtiquetteType($champ["type"])."
            </td><td>
              <a href='edit_champ.php?id_evenement={$champ["id_evenement"]}&id={$champ["id"]}'>
                <img src='img/modifier.png' border='0' />
              </a>
              <a href='edit_champ.php?id_evenement={$champ["id_evenement"]}&id={$champ["id"]}&supprimer=1'>
                <img src='img/supprimer.png' border='0' />
              </a>
            </td></tr>";
          }
         ?>
          <tr><td colspan="3" align="right">
            <a href="edit_champ.php?id=new&id_evenement=<?php echo $request["id"] ?>">Ajouter un champ</a>
          </td></tr>
        </table>
      </td></tr>
      <?php } ?>
      <tr><td>
      <div class="titre">Liste des gestionnaires de l'événement</div>
      <?php
      $membres = $evenement->getListeGestionnaires();
      echo "<ul>";
      $membre_selectionne = array();
      foreach($membres as $membre_id){
        $membre_infos = Membre::getMembre($membre_id);
        $membre_selectionne[] = $membre_infos["id"];
        echo "<li>{$membre_infos["nom"]}, {$membre_infos["prenom"]}&nbsp;
              <a href='edit_evenement.php?id_membre={$membre_infos["id"]}&id=$evenement->id&action=supprimer_gestionnaire'>
              <img src='img/supprimer.png' border='0' /></a></li>";      
      }
      echo "</ul>"; 
      ?>
        Ajouter:
        <select name="ajouter_gestionnaire">
          <option value=''></option>
        <?php
        $liste_membres = Membre::getListeMembre();
        foreach ($liste_membres as $membre){
          if (array_search($membre["id"],$membre_selectionne) === false)
            echo "<option value='{$membre["id"]}'>{$membre["nom"]}, {$membre["prenom"]}</option>";
        }
        ?>
        </select>
      </td></tr>
      <tr><td align="center">
        <input type="hidden" name="id" value="<?php echo $request["id"] ?>" />
        <input type="hidden" name="edit_evenement" value="1" />
        <br />
        <br />
        <input type="checkbox" value="1" <?php echo $request["archive"] == 1 ? "checked='checked'":"" ?> name="archive" />Je désir archiver cet événement<br />
        <br />
        <button type="submit">Appliquer</button><br /><br />
        <a href="evenement.php">Retour</a>
      </td></tr>
    </table>
    </form>
  </body>
</html>